﻿// Type: VSFile.Project.CSharpProjectFile
// Assembly: VSFile, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null
// Assembly location: C:\Downloads\VSFile.dll



namespace ReadSolutionContents
{
    /// <summary>
    /// Represents a Visual C# project file.
    /// 
    /// </summary>
    public class CSharpProjectFile : ProjectFile<CSharpSourceFile>
    {
        /// <summary>
        /// File extension of a Visual C# project file.
        /// 
        /// </summary>
        public const string ProjectFileExtension = ".csproj";

        /// <summary>
        /// Constructor for specifying file path.
        /// 
        /// </summary>
        /// <param name="filePath">String representing path to Visual C# project file.
        ///             </param>
        public CSharpProjectFile(string filePath)
            : base(".csproj", filePath, ".cs")
        {
        }

        /// <summary>
        /// Constructor for specifying project name.
        /// 
        /// </summary>
        /// <param name="projectName">String representing Visual C# project name.
        ///             </param><param name="filePath">String representing path to Visual C# project file.
        ///             </param>
        public CSharpProjectFile(string projectName, string filePath)
            : base(projectName, ".csproj", filePath, ".cs")
        {
        }

        /// <summary>
        /// Create instance of source file with given file path.
        /// 
        /// </summary>
        /// <param name="filePath">String representing file path.
        ///             </param>
        /// <returns>
        /// Instance of source file with given file path.
        /// 
        /// </returns>
        protected override CSharpSourceFile CreateSourceFile(string filePath)
        {
            return new CSharpSourceFile(filePath);
        }
    }
}
